﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades;
using Negocio;

namespace Presentación
{
    public partial class AMUsuario : System.Web.UI.Page
    {
        UsuarioEntidades usuarioEnt;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Cookies["idUsuarioModificar"] != null)            
            {
                if (!IsPostBack) 
                {
                    UsuarioNegocio usuarioNeg = new UsuarioNegocio();
                    usuarioEnt = usuarioNeg.ObtenerPorId(int.Parse(Request.Cookies["idUsuarioModificar"].Value));                    
                    Response.Cookies["idUsuarioModificar"].Expires = DateTime.Now.AddDays(-1);

                    ViewState["idUsuarioModificar"] = usuarioEnt.IdUsuario;
                    nombreUsuarioTextBox.Text = usuarioEnt.NombreUsuario;
                    contraseñaTextBox.Text = usuarioEnt.Contraseña;
                    JugadorCheckBox.Checked = usuarioEnt.TipoUsuario == 1
                        || usuarioEnt.TipoUsuario == 3
                        || usuarioEnt.TipoUsuario == 5
                        || usuarioEnt.TipoUsuario == 7;
                    DiseñadorCheckBox.Checked = usuarioEnt.TipoUsuario == 2
                        || usuarioEnt.TipoUsuario == 3
                        || usuarioEnt.TipoUsuario >= 6;
                    AdministradorCheckBox.Checked = usuarioEnt.TipoUsuario >= 4;
                }
            }
            else if (!IsPostBack)
            {
                if (ViewState["idUsuarioModidicar"] == null)
                {
                    BorrarHistorialLinkButton.Enabled = false;
                    EliminarUsuarioLinkButton.Enabled = false;
                }
            }
        }

        protected void GuardarButton_Click(object sender, EventArgs e)
        {
            usuarioEnt = new UsuarioEntidades();
            if (ViewState["idUsuarioModificar"] != null)
                usuarioEnt.IdUsuario = (int)ViewState["idUsuarioModificar"];
            usuarioEnt.NombreUsuario = nombreUsuarioTextBox.Text;
            usuarioEnt.Contraseña = contraseñaTextBox.Text;
            usuarioEnt.TipoUsuario = (JugadorCheckBox.Checked ? 1 : 0)
                + (DiseñadorCheckBox.Checked ? 2 : 0)
                + (AdministradorCheckBox.Checked ? 4 : 0);
            usuarioEnt.Estado = true;

            UsuarioNegocio usuarioNeg = new UsuarioNegocio();
            usuarioNeg.Guardar(usuarioEnt);
            
            Response.Redirect("MenuUsuarios.aspx");
        }

        protected void BorrarHistorialLinkButton_Click(object sender, EventArgs e)
        {
            PalabraJugadaNegocio palabraJugadaNeg = new PalabraJugadaNegocio();
            palabraJugadaNeg.BorrarPalabrasJugadas((int)ViewState["idUsuarioModificar"]);

            GrillaJugadaNegocio grillaJugadaNeg = new GrillaJugadaNegocio();
            grillaJugadaNeg.BorrarGrillasJugadas((int)ViewState["idUsuarioModificar"]);
        }

        protected void EliminarUsuarioLinkButton_Click(object sender, EventArgs e)
        {
            UsuarioNegocio usuarioNeg = new UsuarioNegocio();
            usuarioNeg.Eliminar((int)ViewState["idUsuarioModificar"]);
            Response.Redirect("MenuUsuarios.aspx");
        }
    }
}